package com.alks.function.mapper.finance.mtlcosts;

import com.alks.entity.data.entity.PcCostDetail;
import com.alks.entity.data.entity.PcSupplementDutyTtl;
import com.alks.function.data.dto.finance.mtlcosts.FinSuppDutyTtl2Dto;
import com.alks.function.data.request.finance.mtlcosts.SuppDutyTtlFindRequest;
import com.alks.function.data.request.finance.mtlcosts.SuppDutyTtlQueryRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ms
 * @since 2024-06-19
 */
public interface PcSupplementDutyTtlMapper extends BaseMapper<PcSupplementDutyTtl> {

    /**
     * 计算责任金额
     *
     * @param slipNo    单据号
     * @param companyId 公司ID
     * @param userName
     */
    void mtlTtlCost(@Param("slipNo") String slipNo, @Param("companyId") String companyId, @Param("userName") String userName);

    /**
     * 获取财务部补单扣款明细数据
     * @param request   查询条件
     * @param companyId 公司ID
     * @return
     */
    List<FinSuppDutyTtl2Dto> suppDutyTtlQuery(@Param("request") SuppDutyTtlQueryRequest request, @Param("companyId") String companyId);

    /**
     * 获取财务部补单扣款明细求和相关数据
     * @param request   查询条件
     * @param companyId 公司ID
     * @return
     */
    Map<String, BigDecimal> suppDutyTtlSumQuery(@Param("request") SuppDutyTtlQueryRequest request, @Param("companyId") String companyId);

    /**
     * 审核打印责任数据查询
     */
    List<PcSupplementDutyTtl> cfmPrintDutyQuery(@Param("slipNo") String slipNo, @Param("companyId") String companyId);
}
